package com.lee.boot.head.first.demo.config;


import com.lee.boot.head.first.demo.intercepter.Interceptor1;
import com.lee.boot.head.first.demo.intercepter.LoginIntercepter;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;


/**
 * @author edz
 * @Auther: Lee
 * @Date: 2018/6/27 15:09
 * @Description:
 */
//WebMvcConfigurerAdapter  springBoot2.0之后已经过时，因spring 5.0 以后使用了jdk 1.8 WebMvcConfigurer 接口的方法都有了默认实现
@Configuration
public class WebConfig implements WebMvcConfigurer {


    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 添加拦截器，配置拦截地址
        // 配置的路径不需要context-path
        // 多个拦截器的执行方式为先注册先执行，后置方法是先注册后执行
        registry.addInterceptor(new Interceptor1()).addPathPatterns("/*");
        registry.addInterceptor(new LoginIntercepter()).addPathPatterns("/login");

    }


    /**
     * 添加静态资源路径
     * 可以跳过拦截器
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        super.addResourceHandlers(registry);
        //使用特殊符号好像不会生效
        //使用一个*可以匹配已经目录
        //比如图片路径是static/A.jpg
        //则需要使用路径/A/pic/test/A.jpg

        //两个*才可以匹配二级目录
        //比如图片路径是static/image/A.jpg
        //则需要使用路径/A/pic/test/image/A.jpg

        //如果是一个*号使用二级目录则会被拦截器拦截
        //三个*不会匹配三级目录 -.-
        registry.addResourceHandler("/A/pic/test/**").addResourceLocations("classpath:/static/");
    }
}
